package tp.tecnicasdisenio.model.factory;

import tp.tecnicasdisenio.dao.impl.jdbc.ConsultaDao;
import tp.tecnicasdisenio.dao.impl.jdbc.MateriaDao;
import tp.tecnicasdisenio.model.ReglaInterface;
import tp.tecnicasdisenio.model.accion.AccionResolverConsulta;
import tp.tecnicasdisenio.model.parser.ParserTituloResolverConsultaTemaPublica;
import tp.tecnicasdisenio.model.regla.ReglaConsultaTemaPublicaResuelta;

public class ReglaConsultaTemaPublicaResueltaFactory implements ReglaFactoryInterface {
public static ReglaConsultaTemaPublicaResueltaFactory instance;
	
	private ReglaConsultaTemaPublicaResueltaFactory(){
	}
	
	public static synchronized ReglaConsultaTemaPublicaResueltaFactory getInstance(){
		if(instance == null){
			instance= new ReglaConsultaTemaPublicaResueltaFactory();
		}
		return instance;
	}
	
	@Override
	public ReglaInterface crear() {
		AccionResolverConsulta accionResolverConsulta = new AccionResolverConsulta();
		accionResolverConsulta.setMateriaDao(MateriaDao.getInstance());
		accionResolverConsulta.setConsultaDao(ConsultaDao.getInstance());
		accionResolverConsulta.setParser(new ParserTituloResolverConsultaTemaPublica());
		
		ReglaConsultaTemaPublicaResuelta reglaConsultaTemaResuelta = new ReglaConsultaTemaPublicaResuelta();
		reglaConsultaTemaResuelta.nuevaAccion(accionResolverConsulta);
		reglaConsultaTemaResuelta.setParserTitulo(new ParserTituloResolverConsultaTemaPublica());
		
		return reglaConsultaTemaResuelta;
	}
}
